package com.yinhe.music.yhmusic.main.my;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.yinhe.music.yhmusic.base.IBaseModel;
import com.yinhe.music.yhmusic.model.HeaderBean;
import com.yinhe.music.yhmusic.model.SongMenuList;
import com.yinhe.music.yhmusic.personal.PersonContract;

import java.util.List;


/**
 * 首页音乐馆Contract
 *
 * @author 何晓华
 * @date 2018/3/1
 */

public interface MyContract {

    interface IMyPresenter extends PersonContract.IPersonPresenter {
        /**
         * 设置头部数据
         *
         * @return {@link HeaderBean}
         */
        List<HeaderBean> getHeaderData();

        /**
         * 获取数据库歌单数据
         *
         * @return
         */
        List<MultiItemEntity> getLocalMenuData();

        /**
         * 获取传入歌单管理的数据
         *
         * @param position 管理菜单 0/1 0:创建歌单 1：管理歌单
         * @param adapter  我的列表adapter
         */
         void getShowMoreData(int position, BaseQuickAdapter adapter);

         void getLocalVisitorData();

    }

    interface IMyView extends PersonContract.IPersonView {

        /**
         * 设置歌单列表
         *
         * @param menuItem 创建的歌单和收藏的歌单
         */
        void setMenuUI(List<MultiItemEntity> menuItem);

        void setLocalMenuUI(List<MultiItemEntity> menuItem);

        /**
         * 显示更多菜单
         *
         * @param menuList 歌单数据
         * @param type     歌单类型 create/collect
         */
        void showManagerDialog(List<SongMenuList> menuList, int type);
    }

     interface IMyModel extends IBaseModel{
        /**
         * 获取数据库歌单数据
         *
         * @return
         */
        List<MultiItemEntity> getLocalMenuData();

         /**
          * 获取数据库歌单数据
          *
          * @return
          */
         List<MultiItemEntity> getLocalVisitorData();

        /**
         * 同步数据库
         *
         * @param list 歌单信息
         * @param type 歌单类型，收藏/创建的歌单
         */
        void doSyn(List<SongMenuList> list, int type);

    }
}
